<?

Class Controller_classificados Extends Controller_Base
{
    function index() {
    	
    	// how many rows to show per page
		$pagenav['rowsPerPage'] = 10;
		$pagenav['pageNum'] = 1;
		$pagenav['offset'] = ($pagenav['pageNum'] - 1) * $pagenav['rowsPerPage'];
		
    	$classificados = $this->registry['classificados']->lista(1);
    	
		$pagenav['numrows'] = $classificados['numrows'];
		$pagenav['maxPage'] = ceil($pagenav['numrows']/$pagenav['rowsPerPage']);
		$pagenav['url'] = "/suser/classificados/lista/&ord=1&tipo=1";
    	
		unset($classificados['numrows']);
		
		$this->registry['template']->set('m_ord', 1);
    	$this->registry['template']->set('pagenav', $pagenav);
    	$this->registry['template']->set('classificados', $classificados);
		$this->registry['template']->show('common/banner');
        $this->registry['template']->show('classificados/index');
        $this->registry['template']->show('common/navigation');
		$this->registry['template']->show('common/footer');
    }
	
    function lista()
    {
    	$ordenacao = isset($_GET['ord']) ? $_GET['ord'] : 1;
    	$campo = isset($_GET['tipo']) ? $_GET['tipo']: 1;
    	$indice = isset($_GET['ind']) ? $_GET['ind'] : 1;
    	
    	switch($_GET['ord'])
    	{
    		case 1:
    			$ordenacao = 'ASC';
    			$m_ordenacao = 1;
    		break;
    		
    		case 2:
    			$ordenacao = 'DESC';
    			$m_ordenacao = 2;
    		break;
    		
    		default:
    			$ordenacao = 'ASC';
    			$m_ordenacao = 1;
    		break;
    	}
    	
    	switch($_GET['tipo'])
    	{
    		case 1:
    			$campo = 'id';
    			$m_campo = 1;
    		break;
    		
    		case 2:
    			$campo = 'email';
    			$m_campo = 2;
    		break;
    		
    		case 3:
    			$campo = 'nome';
    			$m_campo = 3;
    		break;
    		
    		case 4:
    			$campo = 'data_ad';
    			$m_campo = 4;
    		break;
    		
    		case 5:
    			$campo = 'preco';
    			$m_campo = 4;
    		break;
    		
    		default:
    			$campo = 'id';
    			$m_campo = 1;
    		break;
    	}
    	
    	// how many rows to show per page
		$pagenav['rowsPerPage'] = 10;
		$pagenav['pageNum'] = $indice;
		$pagenav['offset'] = ($pagenav['pageNum'] - 1) * $pagenav['rowsPerPage'];
		
    	$classificados = $this->registry['classificados']->lista($indice, $campo, $ordenacao);
    	
		$pagenav['numrows'] = $classificados['numrows'];
		$pagenav['maxPage'] = ceil($pagenav['numrows']/$pagenav['rowsPerPage']);
		$pagenav['url'] = "/suser/classificados/lista/&ord=" . $m_ordenacao . "&tipo=" . $m_campo;
    	
		unset($classificados['numrows']);
		
		$this->registry['template']->set('pagenav', $pagenav);
		$this->registry['template']->set('m_ord', $m_ordenacao);
		
    	$this->registry['template']->set('classificados', $classificados);
		$this->registry['template']->show('common/banner');
        $this->registry['template']->show('classificados/index');
        $this->registry['template']->show('common/navigation');
		$this->registry['template']->show('common/footer');
    }
    
    function pesquisa()
    {
    	if(isset($_GET['q']))
    	{
    		$ordenacao = isset($_GET['ord']) ? $_GET['ord'] : 1;
    		$campo = isset($_GET['tipo']) ? $_GET['tipo']: 1;
    		$indice = isset($_GET['ind']) ? $_GET['ind'] : 1;
    	
    		switch($ordenacao)
    		{
    			case 1:
    				$ordenacao = 'ASC';
    				$m_ordenacao = 1;
    			break;
    		
    			case 2:
    				$ordenacao = 'DESC';
    				$m_ordenacao = 2;
    			break;
    		
    			default:
    				$ordenacao = 'ASC';
    				$m_ordenacao = 1;
    			break;
    		}
    	
    		switch($campo)
    		{
    			case 1:
    				$campo = 'id';
    				$m_campo = 1;
    			break;
    		
    			case 2:
    				$campo = 'email';
    				$m_campo = 2;
    			break;
    		
    			case 3:
    				$campo = 'nome';
    				$m_campo = 3;
    			break;
    		
    			case 4:
    				$campo = 'data_ad';
    				$m_campo = 4;
    			break;
    		
    			case 5:
    				$campo = 'preco';
    				$m_campo = 4;
    			break;
    		
    			default:
    				$campo = 'id';
    				$m_campo = 1;
    			break;
    		}
    		
    		// how many rows to show per page
			$pagenav['rowsPerPage'] = 10;
			$pagenav['pageNum'] = $indice;
			$pagenav['offset'] = ($pagenav['pageNum'] - 1) * $pagenav['rowsPerPage'];
		
    		$classificados = $this->registry['classificados']->pesquisa_simples(addslashes($_GET['q']), $indice, $campo, $ordenacao);
    		
    		$pagenav['numrows'] = $classificados['numrows'];
			$pagenav['maxPage'] = ceil($pagenav['numrows']/$pagenav['rowsPerPage']);
			$pagenav['url'] = "/suser/classificados/pesquisa?q=" . $_GET['q'] . "&ord=" . $m_ordenacao . "&tipo=" . $m_campo;
			unset($classificados['numrows']);
			
			$this->registry['template']->set('m_ord', $m_ordenacao);
    		$this->registry['template']->set('pagenav', $pagenav);
    		$this->registry['template']->set('classificados', $classificados);
    	
    		$this->registry['template']->show('common/banner');
        	$this->registry['template']->show('classificados/pesquisa_s_resultado');
        	$this->registry['template']->show('common/navigation');
			$this->registry['template']->show('common/footer');
    	} else {
    		$this->registry['template']->show('common/banner');
        	$this->registry['template']->show('classificados/pesquisa');
			$this->registry['template']->show('common/footer');
    	}
    }
    
 	function pesquisa_avancada()
    {
    	if(isset($_GET['q']))
    	{
    		$ordenacao = isset($_GET['ord']) ? $_GET['ord'] : 1;
    		$campo = isset($_GET['tipo']) ? $_GET['tipo']: 1;
    		$indice = isset($_GET['ind']) ? $_GET['ind'] : 1;
    		$opt = isset($_GET['opt']) ? $_GET['opt'] : 1;
    	
    		switch($ordenacao)
    		{
    			case 1:
    				$ordenacao = 'ASC';
    				$m_ordenacao = 1;
    			break;
    		
    			case 2:
    				$ordenacao = 'DESC';
    				$m_ordenacao = 2;
    			break;
    		
    			default:
    				$ordenacao = 'ASC';
    				$m_ordenacao = 1;
    			break;
    		}
    	
    		switch($campo)
    		{
    			case 1:
    				$campo = 'id';
    				$m_campo = 1;
    			break;
    		
    			case 2:
    				$campo = 'email';
    				$m_campo = 2;
    			break;
    		
    			case 3:
    				$campo = 'nome';
    				$m_campo = 3;
    			break;
    		
    			case 4:
    				$campo = 'data_ad';
    				$m_campo = 4;
    			break;
    		
    			case 5:
    				$campo = 'preco';
    				$m_campo = 4;
    			break;
    		
    			default:
    				$campo = 'id';
    				$m_campo = 1;
    			break;
    		}
    		
    		switch($opt)
    		{
    			case 1:
    				$field = 'titulo';
    				$m_field = 1;
    			break;
    		
    			case 2:
    				$field = 'id';
    				$m_field = 2;
    			break;
    		
    			case 3:
    				$field = 'descricao';
    				$m_field = 3;
    			break;
    		
    			case 4:
    				$field = 'preco';
    				$m_field = 2;
    			break;
    			
    			case 5:
    				$field = 'data_ad';
    				$m_field = 5;
    			break;
    			
    			case 6:
    				$field = 'data_mo';
    				$m_field = 6;
    			break;
    			
    			case 7:
    				$field = 'utilizadores.email';
    				$m_field = 7;
    			break;
    			
    			case 8:
    				$field = 'cadeiras.nome';
    				$m_field = 8;
    			break;
    		
    			default:
    				$field = 'primeiro_nome';
    				$m_field = 1;
    			break;
    		}
    	
    		// how many rows to show per page
			$pagenav['rowsPerPage'] = 10;
			$pagenav['pageNum'] = $indice;
			$pagenav['offset'] = ($pagenav['pageNum'] - 1) * $pagenav['rowsPerPage'];
		
    		$classificados = $this->registry['classificados']->pesquisa_avancada(addslashes($_GET['q']), $field, $indice, $campo, $ordenacao);
    		
    		$pagenav['numrows'] = $classificados['numrows'];
			$pagenav['maxPage'] = ceil($pagenav['numrows']/$pagenav['rowsPerPage']);
			$pagenav['url'] = "/suser/classificados/pesquisa_avancada?q=" . $_GET['q'] . "&opt=" . $_GET['opt'] . "&ord=" . $m_ordenacao . "&tipo=" . $m_campo;
			unset($classificados['numrows']);
			
			$this->registry['template']->set('m_ord', $m_ordenacao);
    		$this->registry['template']->set('pagenav', $pagenav);
    		$this->registry['template']->set('classificados', $classificados);
    	
    		$this->registry['template']->show('common/banner');
        	$this->registry['template']->show('classificados/pesquisa_a_resultado');
        	$this->registry['template']->show('common/navigation');
			$this->registry['template']->show('common/footer');
    	} else {
    		$this->registry['template']->show('common/banner');
        	$this->registry['template']->show('classificados/pesquisa_avancada');
			$this->registry['template']->show('common/footer');
    	}
    }
    
	function ver()
    {
		$classificado_id = $this->registry['Uri']->getURIsegmento(2);
		if(!is_numeric($classificado_id))
		{
			header('location: /suser/menu');
		}
		
		
        $classificado_info = $this->registry['classificados']->get_byField($classificado_id, 'id');
    	if(!$classificado_info)
		{
			header('location: /suser/menu');
		}
		
        if($_POST)
        {
        	$this->registry['classificados']->update($classificado_info['id'], $_POST);
        }
        
        $cadeiras_info = $this->registry['cadeiras']->lista();
        
        $this->registry['template']->set('cadeiras_info', $cadeiras_info);
        $this->registry['template']->set('classificado_info', $classificado_info);
        $this->registry['template']->show('common/banner');
        $this->registry['template']->show('classificados/ver');
        $this->registry['template']->show('common/footer');
	}
	
	function banir()
    {
		$classificado_id = $this->registry['Uri']->getURIsegmento(2);
		if(!is_numeric($classificado_id))
		{
			header('location: /suser/menu');
		}
        $classificado_info = $this->registry['classificados']->get_byField($classificado_id, 'id');
    	if(!$classificado_info)
		{
			header('location: /suser/menu');
		}

        if($_POST)
        {
        	$this->registry['classificados']->delete($classificado_info['id'], $_POST);
        }
        $this->registry['template']->set('user_info', $user_info);
        $this->registry['template']->show('common/banner');
        $this->registry['template']->show('classificados/banir');
        $this->registry['template']->show('common/footer');
	}
}

?>